import { request } from "@/api/request.js";

/**
 * 添加消费记录
 * @param {Object} transaction - 消费记录对象
 * @param {Number} [transaction.id] - 消费记录ID
 * @param {Number} [transaction.userId] - 用户ID
 * @param {Number} [transaction.categoryId] - 分类ID
 * @param {Number} [transaction.platformId] - 消费平台ID
 * @param {Number} [transaction.amount] - 消费金额
 * @param {String} [transaction.transactionDate] - 消费时间
 * @param {String} [transaction.remark] - 消费备注
 * @returns {Promise} - 返回添加结果
 */
export function addTransaction(transaction) {
    return request({
        url: '/transaction/add',
        method: 'POST',
        data: transaction
    });
}

/**
 * 删除消费记录
 * @param {Number} id - 消费记录ID
 * @returns {Promise} - 返回删除结果
 */
export function deleteTransaction(id) {
    return request({
        url: `/transaction/${id}`,
        method: 'DELETE'
    });
}

/**
 * 更新消费记录
 * @param {Object} transaction - 消费记录对象
 * @param {Number} transaction.id - 消费记录ID
 * @param {Number} [transaction.userId] - 用户ID
 * @param {Number} [transaction.categoryId] - 分类ID
 * @param {Number} [transaction.platformId] - 消费平台ID
 * @param {Number} [transaction.amount] - 消费金额
 * @param {String} [transaction.transactionDate] - 消费时间
 * @param {String} [transaction.remark] - 消费备注
 * @returns {Promise} - 返回更新结果
 */
export function updateTransaction(transaction) {
    return request({
        url: '/transaction/update',
        method: 'POST',
        data: transaction
    });
}

/**
 * 更新凭证图片
 * @param {Object} data - 凭证图片数据
 * @param {Number} data.id - 消费记录ID
 * @param {String} data.receiptImage - 凭证图片
 * @returns {Promise} - 返回更新结果
 */
export function updateTransactionReceipt(data) {
    return request({
        url: `/transaction/updateReceiptImage`,
        method: 'POST',
        data: data
    });
}

/**
 * 查询消费记录
 * @param {Object} queryParams - 查询参数
 * @param {Number} [queryParams.id] - 消费记录ID
 * @param {Number} [queryParams.userId] - 用户ID
 * @param {Number} [queryParams.categoryId] - 分类ID
 * @param {Number} [queryParams.platformId] - 平台ID
 * @param {String} [queryParams.startDate] - 消费开始日期
 * @param {String} [queryParams.endDate] - 消费结束日期
 * @param {String} [queryParams.remark] - 备注关键词
 * @param {Number} [queryParams.page=1] - 页码
 * @param {Number} [queryParams.pageSize=10] - 每页大小
 * @returns {Promise} - 返回查询结果
 */
export function queryTransactions(queryParams = {}) {
    return request({
        url: '/transaction/query',
        method: 'POST',
        data: {
            ...queryParams,
            page: queryParams.page || 1,
            pageSize: queryParams.pageSize || 10
        }
    });
}